{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 朴素神经网络的实现\n",
    "\n",
    "## 将感知机应用于多分类任务"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from Util import gen_five_clusters, visualize2d\n",
    "\n",
    "class MultiPerceptron:\n",
    "    def __init__(self):\n",
    "        # 注意这里的 self._w 将来会是（n x K 的）矩阵\n",
    "        self._w = None\n",
    "        \n",
    "    def fit(self, x, y, lr=1e-3, epoch=1000):\n",
    "        x, y = np.asarray(x, np.float32), np.asarray(y, np.float32)\n",
    "        # x.shape[1] 即为 n、y.shape[1] 即为 K\n",
    "        self._w = np.zeros([x.shape[1], y.shape[1]])\n",
    "        for _ in range(epoch):\n",
    "            # 依公式进行梯度下降\n",
    "            y_pred = x.dot(self._w)\n",
    "            dw = 2 * x.T.dot(y_pred - y)\n",
    "            self._w -= lr * dw\n",
    "    \n",
    "    def predict(self, x):\n",
    "        # 依公式计算模型输出向量\n",
    "        y_pred = np.asarray(x, np.float32).dot(self._w)\n",
    "        # 预测类别时对输出的 K 维向量用 argmax 即可\n",
    "        return np.argmax(y_pred, axis=1).astype(np.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD8CAYAAABjAo9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXmcZGV197/n3ltbV+89PTM9a8/CbMAwzAw7CIgsrihK\n1EhM3teoCcEQo6iJeROz+PImJtEYo4m7MTEqiqiEKCCyw8AMMMBszNqz90zvS+33Oe8ft6e7q6t6\nm+l9nu/n0yLVVfc+VXT97rnnOed3RFWxWCwWy8zBmewFWCwWi2VsscJusVgsMwwr7BaLxTLDsMJu\nsVgsMwwr7BaLxTLDsMJusVgsMwwr7BaLxTLDsMJusVgsMwwr7BaLxTLD8CbjpGWV1Vo7b8FknNpi\nsUxTqhLtk72ESeeFhoNNqlo73PMmRdhr5y3gs//5wGSc2mKxTFNu3Ww1I/ShDzeM5Hk2FWOxWKY8\nVtRHhxV2i8UypbGiPnqssFsslimLFfXTwwq7xWKZklhRP32ssFsslimHFfUzwwq7xWKxzDCssFss\nlimFjdbPHCvsFotlymBFfWywwm6xWKYEVtTHDivsFotl0rGiPrZYYbdYLJOKFfWxxwq7xWKxzDCs\nsFsslknDRuvjgxV2i8UyKVhRHz+ssFsslgnHivr4Mil+7BbL6aI5aPtxnPZ745ATyt6UoOo3u3Bi\nOtlLs4wQK+rjjxV2y7Ti6CdqSDwbQVPBzWbL18voeiTGou+cQOxf85THivrEYFMxlmlDansoT9QB\nNO2QafDofiI6iSuzWKYWVtgt04bky2EwhY9rwiGxJTLxC7KMChutTxxjIuwiUikiPxKRnSKyQ0Qu\nG4vjWiz98WpN0eShRAzeHH/iF2QZMVbUJ5axitj/CfiFqq4CLgB2jNFxLZZe4lclcSIKMmCj1IHy\nNycmZ1GWYbGiPvGcsbCLSDnwOuAbAKqaUdW2Mz2uxTIQJwwLv36S8JIcEjFI1ODNzbHgy0141UVy\nNJZJx4r65DAWdQRLgZPAt0TkAmALcKeqdo/BsS2WPMJLctT/qJHsERfNCaFFOUQme1WWYlhRnzzG\nIhXjAeuBr6jqhUA38KmBTxKRD4nIZhHZ3NnaMgantZzNhOb7hBdbUbdYijEWwn4YOKyqm3r+/UcE\nQp+Hqn5VVTeq6sayquoxOK3FYpmq2Gh9cjljYVfV48AhEVnZ89B1wPYhT9q4+0xPa7FYpihW1Cef\nserV+wjwnyISBvYB/2u4F8Q/d33v/+++66ExWobFYplMrKhPDcak3FFVX+pJs6xV1berautoXt9f\n5C0Wy/TEivrUYcp0nsY/d70VeItlmmJFfWox5WyTbIrGMh5oFtp+FKf93lI0B+VvSlB1m3WFHAus\nqE89pkzEXgwbwVvGiqMfr6HpnyvI7A2RbQjR8s0yDn2gFs1N9soslrFnSgs7WHG3nDmp7SESzxdx\nhTzo0fWYdYU8E2y0PjWZ8sIONv9uOTOSL4fRQVwhky9ZV8jTxYr61GXK5diH4pS429y7ZTR4tQbx\nQDP5j0vE4M2dea6Q6b0enQ/FQIWyNySInDP2+SYr6lObaSXsp7ACbxkNgStkJX5SQft5ELjBJupM\novkbpbR8vRzNBe+z9d9LqfqdTmZ9uHPMzmFFfeozLVIxg2FTNJaR4IRh4TdOEl6a7XOFnNfjClk1\nc1whMwc9Wr5egaYd8AV8QdMOrd8uI7N/bGI4K+rTg2kZsQ8k/rnrbfRuGZJwfY76e06QPeqiOQgt\n9GecgVjXo9Hiewk5oevRGNVLxi5qt0xtZoSwg03PWEZGaN7My6mfQlx6hpAMuGI5gGvr9c8mZoyw\nn8IK/NRBlRkXFU9lSl+fpOlL5QyUcBEouy55Rse2KZjpxbTOsQ+Fzb1PDiYDJ/6hgt1XzmP3xvkc\n/O1aUjtCk72ss4JQnU/tXW1IRJGoCfYTwkrtx9oIzT/9OxUr6tOPGRex98dG7xPP8U9X0/1kNNjA\nA1KvRDj0wVoWf7+R8IKZmwaZKlTekqD0qhRdj8ZAIX5NktDs098gtqI+PZmxEXt/bPXMxJA96tL9\nRKxX1E+hGaH1P0snaVVnH16tofLWbip/o9uK+lnKWSHsp7ACP75kDnlIuMgmXU5I7wxP/IIslrOU\ns0rYT2HFfXwIL8qhmSK7pZ4SXZ0pfNxisYwLZ6Wwg43ex4NQnU/86iQS6X/7r0hYqbqta9LWZRk9\nNg0zvZnRm6cjwW6wji11f9NC01fKaf9RKSYhRC/IMOeTbTO6fnwmYQV9ZnDWC/sprMCPDRKC2j/s\noPYPOyZ7KZZRYkV95nDWpmIGw6ZoLGcjVtRnFlbYB8EKvMVima5YYR8GK+6W6YbmoPNXUZq+XE77\nz0swSevrcLZhc+wjwObfLdMFv0M4+DuzyZ1w0YSDxAxNX6hg4bdPEF5YfAPbpmFmHjZiHwUzIXpP\n7/Fo+lI5J/+pnOSr1sNlptH0LxVkj3hoIvhqa9LBb3c4/pnqos+3oj4zGbOIXURcYDNwRFXfMlbH\nnWr0F/fpFsG3/HspzV/pma5joO0HpVTc0s3sj7dP9tIsY0TngzHIDki9GCH1chiTFJxY0BlsBX1m\nM5YR+53AjjE83pRnOkXw2aMuzV/uN11HBU05tN8bJ7XdRu4zhhGk062oz3zGRNhFZAHwZuDrY3G8\n6cR0qZ7pfjLaM4QhH00LXb+KTcKKLONB+U0JJDTA+MtRYuvTODG1on6WMFYR+xeATwAzZ4DkKJny\n4u5R/L+2A4TsdJ2ZQs3tHYSX5JASA64iJQa3xmfuZ1one2mWCeSMc+wi8hbghKpuEZFrhnjeh4AP\nAdSWzMxinIH5d89PU9N1gKwbpSW+aFLHCZVem+Tk5yoLHhdPKb/pzKbrWKYObqmy6HsnSDwbIf1a\nmND8HKXXJBGbbTurENUzi9ZE5G7gt4AcEAXKgXtV9bbBXrO8Jqb/eGP9GZ13qrN4TgXnrlqEEQdR\nJRUq49FVt9MVmz1pa+p4MEbjX1SDo6CAEWbd2UbVe7snbU2WicOmYaY/oQ99eIuqbhzueWccOqvq\nnwB/AtATsX98KFE/G6gsi3Lustl4ps+q1k1nuHbHl/j5hZ8BmZwq0/IbksQvPkbXY1E0J5S+LolX\ne9Zmz84qrKifXczMnMgks6SuEsfJT7s4KJFcNzVdB2guWzpJKwO30lBxc2LSzm+ZWKygn52Maeio\nqo/O5Br2kRIOuTjF8umZBOU/+OOJX5DlrMSK+tmL7TwdB443d5HzC1McjgitncmpX0FjsVimNVbY\nx4FDJzroTmZ6xV1VyfmGnQ1NZHPBY9Ol/t1isUw/rLCPA8YoT249yPb9J2lqS3CsqYtN2w6z90hh\nLbEVd8t4YNMwZzd283Sc8I1y4FgbB461Dfvc6ew/Y5l6WFG32Ih9inG6EXxN5wEu2/1tXr/tC6w6\n+jCenxrjlVmmA1bULWAj9inJaP3fl554hg0HfohjcjgoNV0NLG98kl+e/0my3vTxgVEfup+Oknwh\njDfbUH5TArfK1tmPBCvolv7YiH0KM5Lo3TUZ1h+4B89kcQi6iD3NEsu0cc7xx8Z7iWOGScOhD9Ry\n7FPVtH6nnKYvlrPvrXNJbg1P9tIsU4BdWsHH/Eu4OXcDf+1fyDGdPgHLZGCFfYozXPVMZfdhtEgn\nq6c5FrS+PJ5LG1PaflBKelcITfYMiEg7aMLh2KeqOUPXC8s052kzm7f5N3KvLuFFZvFtXcEb/Dez\nX8sme2lTFivs04TBBD7jleBo8ZFnaa90vJc1ZnTcXxJ4xQ/A73DI7LcZw6GYyWkYVfikuYQkHn6P\nXGVx6cbjbnMBe7ScZ8xs2tW6nPXHfmOmGQPz752xuXRGZ1OROIbTzzU554TZVXfNZCzxtJDB/hJ1\niN9ZZrSoA3QQ4iglBY8bHB7UBTzqzyOEIYPDHbKNO91tk7DKqYeN2Kcp/SP4x1f+Hh2x2WSdMBk3\nSk5CvDr/Jo5XrpnkVY6c8nd0I9GBG6WKN9sntDA37OvTez2OfrKafW+Zy+HbZ5F8ceJy85qFxKYI\n3c9GMOlxOL4PXU9EOfnFclq/H8dvC762M13UAaL4gw6FMggpPDoJk8bjy7qGX5oFE7q+qYqNhaY5\np8T9fz7+IJWJI0SznTSXLibrFUY5U5nKd3STeCpK4vkImhMkpIinzPtc87A29qkdIQ59oBbNCBgh\nd9Ql+dIs6u5uofTq8S37TDwX4ejHa+jZt0aV4LxXjc15TQoOf7iW9N4QmnCQiKHpSxX89h/+FCbP\nS27CiIjhrdLA/bqIdJ5cKQPnACYJ8VWzihudwxO6xqmIjdhnCPG/v4G2+AKOV66edqIOQbpl/hea\nWfBvJ6n9SDtz/qyVpb84RuSc4aP1k1+oQFOBqPccDU05nPjbynHdePU7hCMfrcF0OZju4EcTDsc+\nWU3u5Nh8tdq+X0r6tUDUoW9T+Sdfe8Po3psaHH8Xbu4h3NwvcPznQaeHD/9nnee5jEYi5CgjQwgf\nb5Bhbc1EJ3h1UxMbsc8gRlv/PhWJnZcldl52VK9JbQtTbIpzrsnFdAtu6fio+6CzYg10/rKEqtu6\nzvgcHf8dL7qpnOiM0tJYQc3c9hEdxzEvInoSOSWIehLXfwrfvRokcsbrHE9KxOffvcc4qHEOa5wl\ndHK9eTMduHnPC+FzndhoHaywz0iqv3ATi+dWEFt/IyfLlrC/9lJy06hRabR41T7ZRKH4iac40fEL\n2f0uB80VXlA0K/idY3Qz7BRfv6rgOCNs3tLufFEnuAwqBjEHUHflGCx0/Fkk3SyS4C7jr/V5PqWX\nkMJBcYiQo4IMtzs7JnmVUwObiplhVMQjvH7jEs5ZWMPilhdYt+8e3rL1r4llhvesma5U/U5nwcar\nRA0Vt3SPa0VN/JI0UkR4JarELx+bHHvF24tvKldUd1FZ2zmiY4h2UeyrLhhERxbxTzXe4TbwffdX\nvEUOsZ6T3C7bech9gBoZh93raYiN2GcY61bMJeT13aJ6roOTbmftwZ+xafn7J3Fl40fFOxLkTrq0\nfqcMcUBzQvkbE9TeOb6iFVmRpeyNCTp/WdLbWCUxQ/zKFNG1mWFePTIq39VN99NRss97GN/B9Xwc\nz3DL7z004tnoKnEokpNWBGT6NvlcKM38i/vUZC9jSmKFfQbhuQ5lJYX5UscRFhx7hld/8t1pnX8f\nDBGY9eFOqt/fRfaYi1fr45ZNTLtq5fu6yDW6pHaGcSsN1f+rg/I3JUcsusMhIfij93+Xo1fN5vDe\nOZRWJFix7gChcPGmtOIHKUWpAlrz0jHgYJz6sVmoZUphhX0GYYYok/BN34APmN4brIPhxJTI0uGr\naMaK7qeiHL2rurfMUhNC0xcriV+WxqsZG/OyWzc/AALzl55g/tITp30c427AMdtBjwIGpQLjngcy\nc/dezmassM8gjFFOtHZRWxXHdfpyqjnf0HAsPy0R/9z14y/uajin8QlWHvs14VyCxooVbF10M13R\n2vE97wSgBo5/pgpN9X3OmnbwfaX5a2XM+dQk5661CzHHAEWduSDlGHct6PkE7bx2e20mY4V9hvHS\na41cdv4C4tFQ0MIhQlNbgt2HmwueO97R+/oDP2LZyWfxTJBvXtCylbntu3jggk+TDFeOyzlHS+ag\nS/t9cfwWl/gVKUqvSSIjsB3JHg1KKQvICd1PxGAMhH3QzlLtwPG3IbQCHioLMc4KkGBvRfy9OLqb\noIlHwd+HkWWoe06Qtxq0l/PMOKYxDlHKcjqotpuYk4oV9hlGJufz2IsNVJVFKYmG6OhO05kYeiNv\nUIFXpabrACWZVlrii+mO1vT+KpppZ9XRh5nTsZvuSA075l1Hc1lfK2Qk28nyE0/jal9qxEEJ+Umu\n2/Z5Hl19x6RH7h0PR2n88+qgZDEndD4UI7K8lAVfO4kzjCOBE1fwiwukU3rmaZjBRT2B6z8Dva32\nOdAGHJPAuBtAu3F094BcusHRvfg6d1w2S1Pqcoe5nMe0jjCGDC7vkT38pbMFZ3yuIZZhsMI+Q2nt\nTNHaObqSu/4CH810cO2OfyaebkEBV30aZm1g09L3UZJp56ZX/h+en8JVn8rEYerat/Ps0ts4NGsD\nABWJY/hOCNfPz3kLUJpu5oZXP8f9F/w5mdDEOlCqQut3S2n5Vhmm3aF/9KpJh/TuEO0/jVN169Bd\nmV6VIXphmuQLEehXyy5RQ+Vvnllj0lAeMI45QOCS0odgQE+AJhEdLA+viDai4yDs/8ds5DGtI43H\nqTj9h7qMetPJB9zXxvx8luE540SbiCwUkV+LyA4R2SYid47FwiyTR/xz13PlI3dSnmwkZNKETRpX\ncyxqfpHljU9x3uEHCOWSuD12wQ7gmSwXHfgh0vNYd6QGxxTfyBTA9bMsO/H0BL2jPlq+UUrzv5Zj\n2l2KpSQ05dD5i5FZMtTd3UJkeRaJGaTUIGGl/O3dVLwtMfQLVVnc9DzXbfs8N7zyd6w49ghuT7pq\nWGMvbUcotkmuiDla9D31Mfbhc0YdfqL1A3xcIInH13XVmJ/PMjLGImLPAR9T1RdEpAzYIiIPqer2\nMTi2ZRIIey7V5bE8G2AAz2RY0fgYnp8u+B2Aa7LE0y10RWvpjtZwonw5czp24Wrhcz3NUt19cNze\nQzE0Cy3fKc/b8CyGExtZqaRXZVj8vROkXwuRbXSJrsrg1ea/11yLQ2JTBAkr8cvTODHl4n3fY1Hz\nFkI9Yl6RPEZ90xYqUquH39SUClTbCsRdAEd348uGwV6IytwRva/RkMIdcP/QRwd2+tVkccbCrqrH\ngGM9/79TRHYA8wEr7NMU15VBDaY8P00qVEY801rwO1FDxu0rn3tqxe9y+WvfYF779oKvfk482krm\nj+Gqh8fvdCA7dNQqMUPlu4JUikkKzd8so+PnJZCF0uuT1P5hB05J/ocTWZElsqLQ36b1B3GaPl8J\nnp7q4WfNP2xjsWzGM33P90yW6u7DGKcalboh12ecelz/IBq0Fw38LY4ewcganAFxlZFVIPEhj306\nlJFlPt00kJ/iEQwXy+mXZ1rOjDGteRKReuBCYNNYHtcysSTTObLZwgYY3xgOV69lx7w3kBuwu+iL\ny7GK1Xk585wb4fHVt9MUr8fvZ9hkAON47J19xbi9h2K45UG6pCiiSNhQ8fZu4lenUAOHPzyL1m+V\n4Z/w8Fs92n9Yyr4b5+J3Dp/SSO/2aPpCBZoRNOGgPc6PkR8cRbXw9YKPaNPwb0JK8J3ziv8KQLtQ\ndxG+ew3GWY2RVfju1ahb31NN8zJO7lnE3xPcwpwhInC38xwxcr13cSF84uT4tPPSGR/fcnqMmbCL\nSCnwY+CPVLWjyO8/JCKbRWRzR2rimkgsp8eLrx0n5xuMCYQw5xvSGZ/9932Dlm9+ku3zricnod7B\nHifKz+HZQSwLHl1zBwdqL8IXD0VoKlvGQ+d+jFS4fCLfEuJB9Qc7Cr1XQkrV+zup/3Ejs+7oQJNC\n4rkIqddC/ayAAQTT7XDkD2cNe672n8fRIncHia4K1BR+7RRBGaHLosym2Fc3sAioBFXEHMcxu3F0\nO66/CfF34frPIHoEhxYc3YPrPw565mWJVzqN3Oc+yM3SwPk08z7Zw4PuAyyXAhmwTBBjUhUjIiEC\nUf9PVb232HNU9avAVwGW14wwiWmZNJraEzz6wgHq6yqJR0M0tSc41NhBzg9E8cB//SO7PvozKpLH\nSIYrSUSqBz1Wzo3y3LLbeG7p+xC0b/i2GspSJ/CdCIlI1US8Lapu68KJG1q+Vk6u2SW8JEvtR9sJ\n1+c4/hdVJF8MxNWb5UOmWGQupF4J43fKkLYFmpBi9izs3nkhOQ0RktSAVIqgzsKRvQkJo7IQ9DBC\ncGcVrMTFOEsRsw9H9/T+DhI4uregkkZJ45i9GPfMJm0d0RK+b5ayT8tYJe28z9nDAhlmA9kyrpyx\nsIuIAN8AdqjqP575kiyjIhaGy9cgS+eiR5vhyW3QPjZfqkQqy/b9Jwf9feTzbyNFTwpgJE1OIr2Z\n4blt27l073fx/DSihvaSeTy54oPjLvAiUHlLgspb+j4jzcL+t80l1+T21qbnjruDHQJc8Nsd3LLB\n/VpKr0vS8T8laDJfvk0mzMOL/4hrT3yF0vSpfQoH46wbVXu/cdYgJoajB4AsKtUYZxUQ6xHx/LUV\nv0QBehB01Wl3ou7Rct7m30AKlxwur2o19/uL+LbzKJc5Nsc+WYxFKuYK4LeA14vISz0/bxqD41qG\no7IU+ev3I2+/DLloBfLGi5C/ej8sGD5VMNacqoEfCaWpk1z12teJZTsJmQye5qjqPsR12z4f9Oqf\nLqpUdzVQ17qNcHbkteRdT0SDjVU/P6btOWjB8yWkJJ6LkGkYPC4quTRN/IoUEut5P44iUUPN7e10\nz59DLHcRvns5vnspvnsd6oyyWUsEdZfie6/H927EuBf1NB9lgVEYhPV4sp8uf2MupBuPXM8eio9D\nEo8/NRed9jEtZ85YVMU8yXj1KFuGRN55BcSjiNtjGRv2UKPI+69D/+8PxvXcriPMrSklGvZo6UjS\n2pkasf/M8uNPIANq3B2UeKaFG179ex5ddfuoG5dK0i1cu+NLxDJtqDi4Jse2+TeybcEbh31t9ohX\nNB8OAqJBV9OpshZAc3DyHyrBQNmNSeb8eWtBwCsCdX/bQuLpKJ0Px3CihvK3JoiuyfYYewkwHpa5\nIcAlqELOp3BK6KkyyUP4pzlAdZPORovEhw2U0a0ecbH7aZOB7Tydzqyt7xX1U4gj6MJaCHuQGZ8v\nVVlJmCvWLkREcJygNLK5PcFz24+MyH8mnmnBLZKAFqCq+xDX7PwyD57/iVGt6XU7/5XSVFNeff3q\now/RFqujMnmU+qbnUXHZW3sZu+dejXH6/vSjK7OIpwXiLiWGWR9pJ7U9TOqlMLkmN0itZJzeOL7z\noRglG9OUv6Uw/SUC8StSxK8Y34HaA09q5BwcfS0vHaP9LkyFnP6WVxlZuik013FRwqO6c7CMJdbi\nbTpTpCQRCCJMf2xsY4uxcfU8Qp5LyHNxHQfPdaipKKG+rs/YK/6563t/BnK8fCXZQcxYHJSK5HEq\nEkdGvJ6y5HHK0k0FTVMhk+HSvd9lzZGHKE+dpCJ5nLWH7+d1u/6N/oX6sYvShJdmkXC/13uKN8un\n8pZu6v6ylfn/3Nyjf33i74XSrF37KOuP3MOyxqfw/OEFfNjO0jFAnXqMrEaJ9NiAxTGyHijsqFUc\njMw77XN9QHYSG3B3ECHHO2Q/IbE1EpOFFfZpjD7xKprJr0XWrA9b942bsJdEQ8QiIWTAJAnPdVg8\nt6LoawaK+4Hai0mFKwaNE404lKRHPsovnEsWbdeBoFvW0/xmoNrOvdR0Heh9TATm/2sTkXVp8Ax4\nhpJLUyz8zolep0dNk/dtKS1v4Y7P3M4b3/1VLrrgf7iw4ce89cXPEE8NXos+EaIO9OTfF+F71+F7\nb8L3rkbdOfjuOhS3N3WiuEAcdU4vDQPwQWcnt8h+IviUkSFCjtfJcf7K2TJGb8ZyOlhhn8789/Ow\n6wiazqLJDJrKwNFm9LuPjNsph3YiGfy3/aN3343wy/PuorFseVFxd02O1vgIS/+AtpJ5eKawHlsJ\n7gAK1qmGWf2EPXvUZf+b5pJ6LhoYeuUcEpuiNP1DZW9gH16aw4n0HeuGd36L0vJWItEgSg+ZDOFc\nNxfv+6+ia5wwUR8KqcR3r8XISozUY5y1+O4VnMlgWEfgbvd5nnHv45vuYzzq3s833MeJik3DTCY2\nxz6dyfnoP/8M5tcEPyc7YP/xcT1ldypLOpvDc/NTKTnfcLBxeA/y/jn4p1Z+kDdt/SzhbDduTz42\n54TZO/vyUTUvze7Yg4+LVySn64tT4FVjxCURDu4uVOHQh2ahnflOj2SFzgdLqHhXN7G1GcSFuf+3\nhaMfrUF9YeXa53Dd/OM6KLM7XkPUR6WvXHLUoq4G0UYgAZSjMouxm7UXRt0lZ5BVL84sSTOLwUtj\nLROLFfaZwJHm4GeC2LLjGJedvwARwXMdcjlDRyLN/mMjT5+cqqD5xfmfYs2RX7Cg9RUyXgm75l7L\n/tpLRrWe0nQTOA6YYrXbA+rIEXwnxJGq8wHI7A6ROzmI02MmGH8X6xlMHb8kTf2PG2m/rwR1BxHa\nAYMsRi/qSVz/aYKqFkNwU12C717KiCaATBEaNco9ZilHKeEyOcFNcsjm3CcQK+xnC9VlyBvWwZK5\ncKQZffhFOF5o5DUS2rpSPPz8PubXlveWO55oHdq/vBinovcX7nqIF5b8xmmtBaAlvrBojj3rRNhR\ndx1Lmp4jlm0Hhc5oLU+t+ADGCUTS7xREBqkLEXBKBmzI1vnM+v1ODu7byNKTz/RaFwP4uBytOq+v\ns/Y0cPyXgUw/90YfpRvHvIZxzz3t404km7SW3/avwUdI43GvLuFfWMO97kOU2BTNhGCF/Wygrhr5\n1K0Q8hDPRevnIJesRL9wH+w9dlqHzOYMB0YRoQ/FmY7oay5dQkt8ETVdDb0bpb64pEJl7Jh/PdsW\nvJF4uhkVt6CzNbomSxFPrgA3qFMvxqsLbqKubRuxbCegGPFIhst5fsl7ep8zvLe6EqRbQiBhUB+h\npYglr+kZQj16YU+pw1ZqKCXLGtrGLKMzGKrwEf8KEv1KIBOE2Es5Xzer+EN32/guwALYzdOzArn1\nSoiEEK9nJqbrIJEQ8r5rx+V8sYjHhSvmcuOly7hu4xKWzBvZfNPRdK/mIcKjq27ncNX55JwQOfE4\nUnkeD5738SAyF6E7OquoXYETU2Z/rA1Chr64XUGUOX/eQmhuYYRZ03mAN2/9GyLZ7t5O2Zb4Qh5Y\n+2nSoaDpaDhRF/8Irv9LXP8xXP9h3NzDYMbWNOs+fzHr/Hfyv/yread/Pa/z38peHY+mqD72UUZH\nkbr2NB73af24ntvSh43YzwbOmY84Ra7hddXguZAbu9vjcMjldRcuJuS5OCJEQrC6vpbyeIStuxuH\nfX3Z399ATUUMBA7973vwhxs+CqDKxfv/i/ltr+KZLAZhXvsOVhx/lFcXvqXoS+KpJioTR+mM1sK7\n6oick6NR5G4SAAAgAElEQVT1e3EyB0JE12SY9QcdeLMMnp/i/EP3U9+0GUE5WH0hC1q2Eu5fs65Q\n3X2QRS0v0jDrohFE6m04ujUveaRkcPVZlAqgbcDvZFif9oHs1Ao+oZeQ6vcVP4jLe/3reMb9KW6/\nfPcmreWv/PXspJIaUtwh2/ktZ/dpRfchzKCDNyK2YWnCsMJ+NpDKQKTIxptvxrzevb6uEs9xcPqp\nguc6LKgtZ1dDM6mebljXEZYvqGb+7HKMURqOt9GdzLBhVV+zzEVP/xGbdx5l/+/eN+Q5azv3sqBl\na+9EIgfFMRlWH32Y/bWX0h3t884R43P5nm8zr/UVjOPhqE9zvJ7Hz/swsb8dMPRbDddt+wIVyeO9\nQ7mXnXi66Gi6kMmw9MQzXHxg+MoQxy+cAxr0hSpKHCGB4iP4PbXmUYyzctjj9uc/zHKyA27IFYcu\nQmzSWi7vGYLxktbwW/61vReA48T5rF5Iqwlz52mkTRZJN4vp4jXK86wGYmS5TXaP+niW08OmYs4C\n9FcvoekBjUyZHDyzg0FHJZ0mNeUxXLfwz8qoUh4PLHFF4MoLFrF8QTWlsTDl8Qir62u5+NwFvR2t\nIc/F8xw2rp5HJNvZa/BVf/I5qrryR+rNb325d2ZoPkJd2468R8498gvmtb6KpznCfgrPZJnVtZ8N\n+39Y8Oq57TspS53sFXWgp7u1+Gc2u6MBJ/dUMMjCHB7C0CwxqNuiwwkCr5cYhvk9teZXjboi5iQx\n/EG+3q39fN//3l9LinwnyyQeX9E1pPT05OHf3CeYRZpSskTJESXH6+Uo73H2ndbxLKPHRuxnA798\nAWZXopesDGwIPBe2N6A/fHzMT9WVzFBTUYLjDPBdESHRc3GpqymjJBrKuwB4roMWucgIsPKeD1A3\nq4yyygqCNiilJb6Qx1bdTs6NkHMiPZFt/q2+ikNuQL398hNP5nWiAriaY3HzCzy37H159edV3Udw\nTeGUoWKiHBhspRGCRik17SjHMO7GIjXoVWgRcQ/efRYh23O8BMqc07LUvU6O8qjWkRyQ787isFH6\n7ip2UjnIO4ITxFjE6Kudlkonz7r38WudxwlibJAmVsvYbLRbRoYV9rMBVfTffwU/fQbmVsPJdmjp\nHJdT7TvaysI5FTj9xML3De1dKboSQVRdXR4l5A3hd94PcYT5tWWUxSN5UXlNVwPrGu5j89J3c2DW\nRaw+9nCROnblSNXavMc8v1hkD6I+jvr4/YS9K1qD74RwBnS15iTUM6hCeqP5QtdEH2hBtDloMOqH\ncVfh+keLzi2VvH8aHLMdX+aMukHpZjnAN1nBPsp70ywlZPmA7GSO9O0PLKOdExT6wCvCbE7fvCwk\nyg0ycr8fy9hiUzFnE+0J2HV43EQdoDuZZdO2w3QlM/jG4BtDY0s3m7b1fcmT6VzvJKbhMEYDUR+w\n+etqjvqm5wDois1mc/27yUmIrBMh40TIOhGeWPFBsl6+aDVWrCiaSOkOVxVs1B6pWkvWjWL6fU0M\nQs4N8/iKD/HKgjfjS2gII4VB5phKBN+5EijpMekqbqkbkKaYBe9wRMTwE/ch/kReYiMnuFaO8GXn\nKe5yX8l73h+7rxSYeMXI8Tuya0JsAVQhpS7G9i6NKVLs9ne8WV4T03+8sX7Cz2sZJY5AVSl0pSA9\n+sHHYc/tEff8v7FwyOUNG5fief0E0yim52/R60nR5HzD0aZOFs4uLzAdO/Wa+596rbf+PZRLMLd9\nJ0ZcjlesxncLK2oWNW3h8j3fKhBRXzzu3XA3OS8GapjXtp0FLVtRoDJxhOrEYVDIuDFCfgrjeogq\nrskW3UyFHudEZyXqLBn8Q9IgZ+/6TyAUWv8G7ovLQKKozB2X7tNHzDw+Y9bTQBmlZPmwbOcOZzvO\nONe8/8Is4K/Meo5SQgk5fld2cqezLa9ix5JP6EMf3qKqG4d7nk3FWIpz5bnBIA/PDdIAm3ai//XY\nqEojM6eee6rrdfFsOHiSzMMv8fSrh9iwso5I2EMIcvObdxyltCTMgtnlCMKhE+00tnQTC3vUVJbk\nVdoYo5xsC/K//RucDtWsH3JNszsKK1Ig8I+pa9/Boep1XLXrq8zp2E3IpDEIxvF4YeE7qO3ay/zW\nV3Hxcf2+WaODR9uCDmeJ25M/N7IUR3cM8FAHMDi6G9QFduC7l4AUd9E8XV7vHOX1zlGyKnjouDcx\nATxp5nCnuZxkjwR1EebfdDUp4/Gn7kvjv4AZjo3YLYWsXYJ88CakX4mkprPw3K7RO0fOr0E+cSuE\n3KDrNecH5mWf+zEcOklJNIQx2lsGWYx4LMRVFyzGdQTXdcj5BmMMj790kEQq/05iuO7Vi/Z9j6Un\nni7IQWadMMcqVhPNdlDT1VAwCMQXD1R7zcr6E3yDgk3dvm+Ti3E2oM4IxxSqImYPju4luEwEkXzh\nBmsM371m7EzBJolbcm9gM7MLHo+S42X3x9YdchBsxG4ZOZ4LF69Azq+H1i5YtSBP1AEkEkIvWQU/\nfGJUaRl57zVB12vPfb14bnC+916N/t2P+oRZev6nSKDRnczyq837WDSngorSKO1dKQ42tpPNFebp\nh7MnaKjZyOKmzTgDyiM9k2F+6ytFJztB4BHvYAapdIxgWIzDISBJsHVlELMflcqR2eKKoO45+LoE\nSOL6LyIUm9uaAbqB0Y0OHE9aNMIjOg8lqMaplkIL5YE0DDIWUIBmIswvkpayjBwr7Gc7kVDgI1NT\njkTDqO8HTonFUIV4tLiwC0Gkv345ZHLoU9vhQCMsq+sV9TyW9nRSlkSQ37wG1i8Pcvq7jqD/8UhQ\nudOPbM6w98jQpmUhz6G6PBYI/iACf6L8HPbXXsrSk8/gmFyvZ7vAoKIOp3LdklfTHjwuqNQAYdBM\nbzVLQDOOeQXjXtjzZIPocUSPA2GMswhkgD2xeASzUCc3Ij+pUX6qi2nRCFdII5dLY9GbhJ/4i/mE\nXoLbc8X7U4S75Xne5e4f8viraOMkUQa+Txel9gyqcSwBVtinO5EQXHUecuFS6Eqij7wcVL6MlGvO\nh9oKJBxE6OIG5X6qWrhh6fvQXqSuWUB+/y1BpB8No8Ygl65Cf74puAiURApf0zP5ST7+Tphb1etj\noyvnI3/yG+invwPJ4qWJxVi+oJqVi2swPRu1Od/w9MuHCgVehC1LfoN9sy9jUdMWVh7/NaIjuO0X\n2Lz4XVy6778CUy5OBe8uxjkH19+clx8PXmJAG4Pp1yo45imERF+ppH8YI+eibuFQESMLcXRn77n6\nCAPxEX8up8OTZg4fMFejQAqXb+pKLuEE33Afx+vZ2Eypw+4e24L0ABn5E72Iy7WReTJ41H2X+zKb\n/dreHDsE3al3yKuEZfzGOp4tzOxyx/k1yG9chfzO9bBu6bTPSxYQ9pA/fTdy86XIOfPhgmXIHW+F\nd18FpdERHUI2rugV9YGo6fuCaTqL/uip4hYE59X3ijqAOD0mYzdfCs/uLBzfl8nC46/CygUwq7xX\n1E+9lpAHl64a0foBZlWWsGJRDa7j9HatRsMer9+4pHdc38D5q63xhWS9wogxb51AxomScaM8tvL3\nuehgK8a5CMMslBJUFuC7V4LEgcHSUwbHfwrXPIjQ1SvUgiIYHN0WCP/AczuLUKp6RtnR808P310/\nrn/HORVuN1eSxOupfxcShNjEbH6i9fgq/I2/jrX+u7jZ3Eia4v0ID+hC2jTEg2Y+T5vZ5AZYaK6T\nZv7DfYQLaSJKjgV08Zeyhd93dhQ9nmV0zNyI/co1yLuvBs9FXAfWL4O9x4KJQzOlaPbKc4OKk558\nuDgSRPCvXwevOz8Q1f/89dDvNzVIVJz14bUj6IIaaOlCH3geXi5ye11eglyxplfU88gZ9OAJ5OUS\ndO2SoKLGc+HVBvS+Z+Dy1UVFSiIhmFcz4ik/S+oqcYt0ugKcu3Q2mazPseYgX90/Bx9LtxWkVk7h\n43Coeh2HZm3gWOVqbnnhYQDUqUGdmoLnq9SAHit6mXDoHqJyxkG0FZXa/IfFwbgXI9oCtAKRcSt3\n7M9L1JAtstIEIe4xS9kj5XxXV+SZiw3ER3jazOZvuYBQz4Usis9/uL9mTb8O1IukiZ96D45qfQ+b\nedxt1nGAMuaR4C7Zytvcg8O/8CxjZgp7LIy85xok3Pf2JBpGl9UFudzNM8OMSC5YWrDJCT2iFvLQ\ni1dCWzf8fNOgx9BfvwyLZ+cJsxoDTe3oF386+MmjYeSDN8GqBcFriqVuUEhm0K/+D1SXwdwqaGyF\n5p4GqaPNRTdL1ZigNHL5PNhztOC8OAKJvg26kOcWrXOHoCZ+xeKaXmHvz4mKlSxpep7QgM5SJcjF\nP3vOb6PijmgKknFW4vone8y7tFfI8ztJi6F5NgZ5yKn8feGFZLx4ysyhu4jtLgR3Gd/WlXnpk2I4\nKE9QRxqPU59sF3Cbfy3Puff1pnNGy8NmHrebK3svKg2UcZdeStp3uXWYnP7ZxpikYkTkJhHZJSJ7\nRORTY3HMM2LFgiAfPACJhpGN50zCgsaJzkReumQgEgkhr79g6GO8sAeeeBXN5tBkGk1moLUL/Zf7\nh3yZ/O6NQfol5AU/g6UHXj0Q/LOlE7Yf7BP1xbXIrVdB2MvziFHVIB2zqBa582Y4tf7KOPLRdyD/\n+EHk738X+T/vhQVBKeHRpk78ITpZY0UufvHPXU/rtz5Bd3sbuX5RsC8uRyrP5dE1HxmxqAcfSAm+\nexUqizGUMpLNz552LKDPJ36PlvM1s4rvmuU0a5G9iXGkUaN8Sc+l2NqjZHm7NJAb9H0pghIjx1I6\nC5wlIcjXP6uFJY7F6FaPw1qSl8K526wruFNI4vF3Oszf+Djwmpbzc7OIbTqyWQMTzRlH7CLiAv8C\nXA8cBp4XkZ+p6vYzPfZpkyme71RjIDX6Dsqpij6yFblgKUSGuD7Hhvcz13uehIdfgmV10JmE1w4P\nZmAYUF4CqxciocI/H/VN8Pkr6Jd+FqR0BrJ6AXLnO4JNVxFUtVfcT10gxHGC93XLFegzO5G73hWk\nnXq6UnX+LOTj70Q//R0ONbazeG4F5fFIwQVGVWnvLF5lISIcPtHBEs9FQy7J+Fx2zL+BfaOcudp3\nwBjGXQOaxfV/xVAf4qnfGFnem476v/46vq0r8Akahf6a9XzJeYobnInxXHlAFw0i28oyOrlV9vI5\nXUtTEW+ZOhK8SQ5ys3OQL5vV7NTCoSYAnYPcDZwirQ5/Zi7iPq3HQQlh+LS8wHvdfRwYpETyBDEy\n6kzIpmtKHT7sX8UzzMHD4ONwHi18x32UUhm99cN4MRYR+8XAHlXdp6oZ4PvAzWNw3NPntSPFN/my\nPvrkqxO/nvFi33H0nieCjc3BItaGEyM7VmtXkKLaNYyoA5TFoEgNORDcRXzjQfTjX4c9xcfuye/c\ngDjSJ+IivT8F5Hy4+jwojfWKOgT7CeI5VN+0niXzqti6u5GDje29VTEQiLpvlB0HCv1aRODKtQtZ\nVV9LPBYm5LmUJBopS57o7QYd9SDqXjwgVPAx9v/3U2kaR3eAdvKc1vKdntx1Frd38/Ij5gq6dGIy\npmlc/CLS7qK8yTmE58CfyYsDvGWCKP3f3Cf5C/dF1kkzb5TDlBTZTM7icKkM/ff4aXMRP9XFpHs+\ngw7CfEY38oiZx/xBnCarSPfm8sebfzTn8wxzSOHRRZgkHlup4c/NsD1DE8pYCPt84FC/fz/c81ge\nIvIhEdksIps7UuN8ZfMN+s8/Q7tTQXohlUEzuWADcBCxmbY8/ir68a+j338MzfQJvPomEPzvPzb2\n52xsK5pp0JwPL+0LNlkHsx5wBCqLl+sV7YJ2JLjrKFYLHw5RVj+bVYtncfnahfi+cqy5E2OCO4B0\n1mfLzqO0dRVG7PNryymNhXt9aSDIx68++iArvn3LGYg6QBsU3YIshuKYfdxr6kkV+Tq6GB7V0U1P\nOl3eIEd669H7E8JwvQQltLe4B/iy8yRraaaaFFdxnB+6D7NOmnuf/xZpYA2txHrEXTDEyHGXbKVK\nBi9h7VKPn2p90XTLF8253CUvFzEsy/JReWXYQiFfhU1ayyNmHp1ncKH8vi4vWF8Gl5/p4ilVkzEW\nocBg9tT5D6h+FfgqBJYCY3DeodnfiN71DVizKNhw23UocDeciaSz8Ngr6GtHkJs2oAtr4dBJ9Bdb\n4FjL2J8v56M/fgredWXv5q3mfEhl0Ac2D/1ao8GPO4IctDHQkYAX9gaVPgNwszlqmtpxHMFBqK+r\nRNFeL/iw53Lhijoe2bKfzICU0JyqOF4R62AR4cJVC9lWs5JUaDYXHn9i2HUOxDEnYYQRpKCodmNE\nihgIBF+kwUbNDUe7hmgjzAISIzLWWi4dfEB28U1dSRoHBaIYbpPdrJK+hrHrnKNc5xwd9DghUX7g\n/oqf62L+WxdSTpb3OXvYKEWcLvvRTKSnSazwv8tR4rzVPUjGd/h/uo4TxCgly/Uc5hoZfC0AO7SS\n3/KvJYEHKDkc/kK28D5375CvK8bAoSSnyOFgkJ5PbfIZC2E/DPTvsFgADP1JTxQ5v3iJ3kzlWAv6\nraG9UsaMx15BT7bDTRugshR2HgpEva1YG/wAtuxGL1qRl3pRVUhnUUeCNI8j0J4IKnNOtgelqsvr\n+hqpfJ9wKkPdgeO9xxABp99QCscRXBUWz61g96H8C1w6m8Oo5hmL9WGo7XqWQ1Vv48W5V41a3FU8\nRANbgWGfi4BUcbM08DNdTGJADtrH4WoZ3V1mt3r8sbmUX+l8XJQoPn8pm3m72zDsaz/pbuVGPcx9\nZjGK8DangQ3DCHIxQqLcIge4hQMjfs08EkXvGBwM63vW8E73ABdqM7f615HE45cs5L/NIn5D9/E3\nzuaCyD2nwvv8a2ka0OX6l7qBtdrC+TJ0N/NArpDj/Frn5Vk5g7KOptOu9hkPxkLYnwfOEZElwBHg\nPcBvjsFxLVOd7QfR7aOvIdZvPYTUlqP1c/seTGbQz34/2LxdMoeFoizyBJlXwWFPaPiXn6M3boAr\nz8UJeyw4dILVL+/FHaIqCMB1HarKCjf7Go63Uz+/loFTlyAo14v4fV/4F+deBdAn8KqIngQSqJQD\nVX31+OqDhim+URFE5YWdq0u4nEbeIfu5V5eSxsFDcVD+TjZRIaPb8L/DXM6TWkemJ7pM4vFJvYQ6\nTXCJDD+TdZ00s85tHvZ5p4sqPEctjRrjAmlmsQS585Aon5SX+Kyu7y2pdDDE8PmY83Lva/+3fzVN\nRPNmqv5Yl3CJnuBtkv/3+IzO7omy8xU/g8N/muX8P/f5Ua39M84Wtvi1JHFJ4xEhRwjl7lEeZ7w5\nY2FX1ZyI3AH8kuAe6puqOvopuJazB9+gd98Ds8rh/PogXbSzzwZhg+aYU1Xam/8uj0eom1XKM/c/\nh97/HOI6nHvJsrz8+KCn8g0d3fl16vW3fo2Q38mh9EEWdfxPoTc7IToiywuO9eLcq/D8TtYd+wLB\nAIygWl0pxbiXAB24fl8qKhBup+dHMc6FoAkcPQBkUanBOKtAoghwt7uZ9+g+HjHziInPW6WB+UO0\n5RfjuMZ4UusKOkKTuHzFrOYSd3hhH0+Oa4x3+9f1Tm3KIdwsDfydswlH4P3uHuaaJF8053GcEjbI\nST7mvMw50gHAHso5RkmeqEPQQPVdcw5vc/KFvZPiVWEGJ2/260hZLN086t7P98wyXqSGNbRxm7M7\nbyrVVGBMtttV9QHgTHabLGcjTR3w65fzHqoojTCnurRgU7OqNEZtZQkn2xLkfMOLu46xfmVdYOIl\nQUuQ01M6eSrFc2oz9tCJdureey+u3805zd8lfvwLGHFx1KfLm09J7nivHa/BJefGaYr3q3JQpbZ7\nE3M7nyDst1GY9e7A8TchdBZ4uygaDNuQBdDTiORTP+hHcoG0cIF7+vsijcQI4Rdp9RcO6eQ7Qv6e\nfyUHKc0btP1zXcx608Rv9uS8b3CODFrimcQdNI9drLHqEjnRe+fSnxKy3CSj8FTqR7WkucOdvGru\nkTAzO08tU5OyGFyxBqmrRvcdh2d3FjhF1pSXFN0qdF1hVkUg7ADHmrt4+Pl9zKstIx4Ns3huRXEX\nSTfENRetZle6gQXtDxLPHMbBx+mxEijJNXKy9FLK0gdwNEVr7DyOl70O4/RFcwva/4fZ3c/iavGU\nSDBBqb3o70ARTaLigCYBb1xtAZbTQa5IdY2Hz2XDlBqOB1u1mv/jb2QrNZSQI4k7ID8dpIq+oyv4\nTYbfzFxDG16RvYsoOW6WAwWP10iaP5aX+Sc9nxQOikOMLKtp480y+jTidMEKu2VimF+DfOJd4DrB\nBuj65fDmi9DP/iDPMfLUpubAGMs3Qflif9JZn/1H2zhvaW3RGngRCSJx9Tmn6Tu4msUZkFN3yRHP\nHGH7nDuKLts1SeZ0PYMzzNzRIetWtAPXf4RTRmEqtRhn7bgIfFxy3Cmv8kU9rzdP7WKIk+N2Z2Kj\nzH1axrv963o3hIOIerBoe2RS5InyeecZ/sBcSQ4hi0sJWerp5P1OcauQ290dbNAm/sOcQych3iwH\nuVkaZrSLpBV2y4Qg738DRMJ9AzciIdRzkHdegX6zzwjqeHMXa5fPKXqMwyc7ij7uOM6wdcyiuaLl\nhACeGbySJ5o92ZO2Od3eCwehOX8uqp7E8bdgvEtP85hD8wfudhabTr5i1nCSGFfIcT7qvDKkje54\n8K9mddGU0EDC+LxJDhU8PhhvcI7yS3mA/zLLOE4JV8sx3iwHiQwh1JfIyUnfX5hIZrZtr2VqEPYC\n75eBDoyuC2vzBz37Rnl+x9HeJqNTPyJw3cYlXHDOHEJe/p/t0abOvNRJcaSok6TBoT26ctBXZbxK\nnCJ+7UMVtmnvP10oEqUKBqENtHgn5VhwgxzhZmmgjAwvaw3/bRaR0on9um/Tqrxceh99IwZj5JhD\nYtR3E/XSxZ+4W/kn9xlucQ4MKepnIzZitwyOI7B+eTAVKZlGn9wG+xtHfxyjRV0cgaIdqucuCSxs\n+6dXXBFcBxbMLqe6LMavXzhA3XvvDX6pSmvrPVQlt+Fo0NlYIOEiNFS8mcXtP8fRbM9UUZecE+NY\n2dWDLj3rltMeWUpFem9BGgcKB1kbHDJuJd3h+VSmQ4jZi0OxUXEOoilUxn5ohiq837+GF5jV2yX5\neT2fh/z5/Mh9uGgT73hwnrSyvYi4hzC8h700S5QrOM47nf2UjPGM06S63K+L2KGVrJR23ioNY36O\nqYwVdktxHEHufDssmdM3FenilehPnwkMw0ZDT6OYrl2SN1RDM1l4Mr8ytqwkTDwW7u0eHYjrOJSU\nlrHq7Z/t264UYX/VrTTFN1KZeJXK5C5CphOHLAYPRNhX/V7aYytJh2qZ0/kkEb+ZjFtFa+xcfIkQ\nzQa36SlvVm9kL5pjacsPqUjvC9bbbx0D7XiDDtEQWbeMHbNvJ+cGgr3hyNdQLayWAYNKcVOrM2UT\ns3mJmrzW9xQeO6jiSZ3L6+T4EK8eO37P2cFP/cUk+gl7lBxvkkN81h2mQ/kMOK4x3urfSCchEoQo\n0Sx/xwX8zP3lqMtHpytW2C3FuXBZr6hDP7fFt1+OPrsTivivDIX+xyPIH9+CzuqZ8SkSdJPe/1ze\n88Iht7hnTD8czVKSbaQ9trrvQRE6I0vpjCzlUKVSlt5LReo1ck6c5vg6sm4wSakrUk88c4jK9l1E\ncy2UpfawpPVHKA6CkpMoe2puoyu6lIVtD1CR3JG3cTrYwAzF5XDFjZwsvTTPX33r3PdwXuMX8Eyi\n30XARWUhyPDOmyNCM4geIxh0Xc0WLZbbDjYotzCL1zExwr5EOvmB+yv+wt/AS9RQSo73y2t81Hll\nXM/752YDTUR77xQShEjj8mdmI99yHx/Xc08VrLBbiiIXLi8+Fcn3g5F2W/aM7oBdKfSvvhcMz6gt\nh8PNcKhwM6u9Kz1Im38fRkKkvCGGT4jQGV1OZ7SwySieOcT8jocCse53/TgVUYc0yaqmr/Fq7UeY\nldiMO6AaZlA3cnFoj60sGJqRc8vYPvsjzOt4iIrUbkJGMbIEdRYM+R5HjLbg+s9z6p4BXOZSQ4Tz\n8iJlOJXPTo7NeUfIBdLCfd4E2Vz08CudX5D+8XF4VOehOvMmZBbDCrulOMl0kH5ximx+nYmn/Z6j\nhVOR+pHzDTsbmli1bH5v3Xj/KFkRck6Mtv7R+iiY1b0FGUGFy7LWewathBkYtSuQcStIu8UvNhmv\nkgPVt/b+++kYixVfiOL6LwwYou2zjN2ke7pd+6/UQ3nLDK7dPoWLFp1AO1UMuiYCK+yWouiT25BL\nVxUO8fAN7Bx5adpoqXvvvSSAPanXmNP5FGG/HUezRPxgVmZ79BwOVN2CSr8/XTVUpHZRk9iKEZfm\n+AY6I0uLHt8x6WG/4AJEcydIerWU5PKbehTIOSU4mg12KcXFiMuemttABDEZZnc/h2e6aY+uoCtc\nXxAino6xWHE6GOh100Q57+Ounoi173IYwvB951eUj9J3ZjryZjnIz3Qx2X7pqFBPSeXZEK2DFXbL\nYDScQO99Ct55Zd+YQd+g//TT4kNMzoDe6pZ+dERX0BFd0fvvon4gxwPng6qytOUHVKZ24moGBaqT\nr9AYv4wjlW/Me6pjMrTGzqUqtR1XB/cFBzB4NFS9nRVN30I0h4NicFDx2FX7QUR9SjMNZJ0y2mKr\nUfGo6n6JZa0/5FSOp67zMbpDC9g5+0P5FyL6jMVgDCN44HtcTQaP/HsKIYQhNdhs1RnGXzhbeMWv\n5ghxsgghlDoS/JUzfhu2Uw0r7JbB+fXL6KZdQU49nQ2mK42hqBcT9MEYbOBzWWZ/r6hDIGeuZpnb\n9TRNpReT9mooTe+nvvUnRHNNKA5ZtwwMvReCU6/rPRfQVLKersgSts/+A+o6HyOWbaQ7vJDjZa8j\n7VUDkAj3zZPx/C6Wtf5gQA5eiWcPMafzcVpLLsAxGZKh2QUXp9OP4MsJvsL/v73zjJPsrO70c+69\nFUOiSQYAACAASURBVDrnMDlqWhM1MwogZCUULIQsGxkZJGODMGjBRgaHtQ389sOu/cHpt152be9a\nxmAMAgSWiJYlJJFRGEkzGk3OeaZzTlV17z374Vb3dHdVdVdXV3d197zPl5mucO+p7qr/PXXe8/7P\n5az9CMuJZTC+Oq1lXJ+DBe9Co1IS/MB+hp9rI8eoYD293CyX5qzNcz5ghN0wOYMx2DP9gQSZmI6Y\nZ0PF0KHR3vWxKEL58FH6ImvZ0P7F0Xq94BHy+hgILWM4VIuvFlXDhwglNwspFv2hlaPZ/nCogVPV\nvzFlHPV9v0h7uwDLel9kae+PQQRfHE5VvXd8Rw9prIGzQQTPvhbb20VwOfLYyUme5TqGJjgXKsLm\naXqPL2QsgVukec46gOYbRtgNs06+xXwsnkRQ7AkLiCRFNEJj309TFkstPEoSFzlZ8xBxp5KzqpQk\nzhNNtDEUamQwvHTacYS83owdM4KPhQ8afEtY1/k1DtQ/RixUl/LYaQu8VOLZtyPaDMR5gCH+t+8T\nTw5aBojgci1tbJLuab8uw8LEWAoY8kppUeC02FhdOqOFKsuPUzF0mPLhY5N2sXSW7MzYv9ZVtImi\nREvaxVJfHMIjwzREGAivoKNkZ06iDtAbbUq7JJuu713Uo35gV5pHX2ZsDX5KJIRaK1BrHWVWKf9h\nP8t9cpZS4tQwzEfkCF+wZ2H27QRU4YhWsFtriM2xfYFhPCZjN+SNHRsaWVIb7KYUpwhfHA7XPcp0\nRxBUDe5jTec3CQoIQU3/fPkv01J2c4qIx5xqTlU+wJqup/GTtWsBjtV8AN+KMhBeQXHiUpAxj8FS\nl2GnjoSldBQpJQmhLJ77lai7eDPDfbVE3fZxu1HTYeETdqfOnnOtvTfKEP/Hfmnaz5sJp7WUD3m3\ncYni5NxS+GvrVe6zZq+DypAZI+yGnKmrKqaxuhTX9Ul4Pktqyy4PyNAYlsa4quPL7Gv4w6x3hYTd\nLtZ2Ppniy7Ki9z+Juu2cqX4g5TmdJTvoLtpIeewEikVvdD2atMRtLruF2sE9qMZGBdcjREfxDl5e\nGeXFtcHtnsDqbuGBA2Gi3vQFXsXmYP0nWNL7I+oGXwdVeqJXUT20L8VOwJMQPUUbMhxpPDnV3ucY\nX+H93h1comjcZKM/9G/kKumlSTJ51RtmCyPshpy4ftNS6ipLcGwLP7kdXybkqAKEvB6ibhvDofqs\njlsz+Cbpcl0Bagd301r2DoZCjSn3+1aU7qLNKbfHnSoO1n+cFd3/QVn8NJ5EaSm9iZ+vuokX17kk\nxjSonK5Snt4c5+G3pj8yLYghwoXKe7hQec/obV5XEbWDb4wu3no4xO1KOoq3Z3XMaKKN5T3/iXgn\nca0ojt+IWmvn1fbJV7WeHsIp4+oSWHzFX8+f228UKLLJ6dUQ39VVtGgRO6WdWxdR54wRdsO0WVJT\nOirqQEqZYzyStkbueP0s632eqqED+OLQVnI9zWW3YvtDaQyzRo7kUzF8dFTYbW+Ahv5fUDl8lLhd\nTkvZL6XdmDQcauBY3YfH3fbSqtg4UQfwLDhTqfSHldI0ZRlFaS1RBkPK0j6LSBaZ/dnK++mPrKK+\n/2VsP0Zn8VZaSn9p9BvFZITcHja2/iO2xhAU24vhMUhnpJzqeOrCa6HoIJJ24djDooXUQeLzgf1a\nxfu8O3ARhnAoUZcN9PCk/SLRReACaYTdMC2WPPQ0azu+ijOUauSUbqHQl1BKhm35cTa1/j0hr2/0\norCk98eUxs/RXHozDf0vpXa5ENjsehJk0443wOaWz+H4g1h4FCcuUDF8lG9t/E2+t2kNvRGoHRTu\nOOGwtiu1B74vQ1JuKQyEUoW9N6J8dVuc7iLF8oOLwG0nbW48P4VAi9BZvJ3OLDP0sTT2/yxpMXz5\nG4xNgtrBPexd8ie4dtnUJRpVoAvRbiCCSmPqJq+RUL1mRI8hxFFKAAskjMpy1KrNeIrrpJ1Emj6M\nYhLcIZntI6aiTaM8r8vwEO6SCzRKfnxuVOH3vJvGDboeIMQhKvlnv4nH5vk802wwS9eGrFjy0NOj\nbYsqToaFQcFL5gqBCIc4Wf1+kPFvs5rB3UlBvpyZ27iUxU7iWkX0RNalP74InUVbAGjo/xmO3z9a\nixfghXVb+fr2ZXQWg2tDc5ny5NYEp6pSLxJrOi2sDF80agZT88+vb43TXqwkbIiFguP/ZK3HyTTH\nzhel8XNpPeB9cShKBFYHk3bPqI/lvY7tvYblH8Hy9wcj+jR1EpW4h7B0NxZ9CDGETizaEb2I5b+B\n5R3OeJpGGeIROULRGIeWKC4rGEg7hzQbnvJW8w7vfv67v5O/8Hdws/cr/JuXauqWC+cp4RLFKbcP\n4/CUpreiWGiYjH2+saYRue96aKwOtvX/xy640FGwcNL1oLeVXE/V0P6U4c4eYc5U/xplsVPE7XLa\ni68j4VSkPL80fibDYGihOHGJ47UfZHnPszT2/zyo3IsNCMdrHsZL+pxXDh0a18aowJd33knMGb/r\n0rXhxbUuH3ljfJb6S2ccDjZ4xAA/ed0JeXDnCQdHxwt7W7FPZ7EysYMvYcOu5V7abwT5YNCppzh+\nPm1HT8ypGv05U/eM+GeTY/lGnu+heNjebjz71st1eo1jcWqCCcHYfz3Q06ArQVIFEeDT1ptcp238\nq7+BPkL8ipzlA9YxojlMNmrWIv5MbyA2QZ7+QndyizazWjKPMswGC52kY2lxGIUZYZ9PbF6FfOxe\nCDmIJWhNGbJ1Nfq3T8GZuZswP9WGov7IGppLb2ZJ309RsUZniR6r/RD9kdVTlh2GnTp8nLQDouNO\nFYjF+cp7uVh+J2WxE4DQG103ri490XtlyAnTH46mPV9rqfLC2gQreyzWd1hYCOVx4dFdEX6xyuVU\nlU95DG4867AujUgPh4ISTTp6I5eFK2Yrx2p8fIH1nRbFiZmtxLWU3UzN0F7Qy+fwcOiLriOetDUY\nIV33jKXnUtYrBFCGgUEguEiKn92OVNF2VFamv0+CcXx3WxeyOtZkPKfL09bsXYTv+yv5xAxLJctk\nkFX0c4zycQu+UVx+Q07O6NjzhRkJu4j8DfArBA7/J4BHVNVsb8sReehWJHJZvEaHWzx4cyDus8x0\ndoherLiL9pLrKY8dw5MoPdEmfCu7wRFtJdezpO+nMGZRNRgpV0Ff+PIMVN8Kp2y9H6G9eCfFPRdH\nBSDqxom4CQbDqcLsCby8yuMN16N2UPjtPWFCfiDu7zo29SJmY5/gp5+uQVsJvLHUpSwmPL05gSQv\nAL7APcccdlzK/SM2HKrnaO0jSZ+bDhSLzuJrOFt5f8bnjBf4TNmnjLtPJTT5ENfR58xNHpjIsByv\nCG6eqsf/aP+cB727iGMRwyKMz3Y6eMQ6kpfjF5qZ/qWeBz6tqq6I/BXwaeBPZx7WFYhjw8h0oYms\nrg9SoquXQ0kUjl+C7pl9HR1hJtv9404l7c71036ea5dxuO6jrOn8JlE3MKXqi6zlZPWDWbfxtZa+\ng2W9L2LrEEKwWPTgvp/x9W23EgtNuMDISLzQWqLsWu5y09mpBR3AkyALX9UlnKzWQODH1Cl8gWc2\nuOPOM8KzV7ms6raoHspdjPoja9jf+IdYfixY28jSoXFP483svHASS4+m6TIKM5KtB3FXQdK/crLf\nvkp2Lasz5S45z19xTcrtIXzuydOGpw3Syyv2t3lWV9BM0O54A23zqYt0RsxI2FX1B2N+fAV478zC\nuYLxPIi7kHZqkY/85SOX73MseHFvYKubI7Pp35INg+FlHGj8FLY3gIqDb02zd1yEg/Ufp6nt8zj+\nEIrwawd30RNt4tkNK4k5ySR0wgfVteGtRp+bspg3MRBSvnhtnIGQErczl2MyqaEvsL/e45YzM88y\np/37AfYsfZiNrf+PokTzGHG38ewd4y+gInjW9dj+q6OdTWP7cEDw7OtA5iZjXyUDfEr28TndSiJZ\n9Y7g82E5wtV53OxUJB7vyXFxd76Tz7/Uh4En83i8KwsFfvwWevfO1KlF0TBEwsiY3RN621Y4cQn2\nTr8mWGhRH8vIYmguxEJ1vLXkTymNn8P2B+mPrGJrazFbWpX2Yp9/vi6BlybBzdQNM5Hn1yfoiejo\n4qo/XvGmxBdSeuVHGHSUE9U+FrC+I7ue+OlSEj9P1G1Dkpl4EHqGkopVgyd3If5JRPtRqQEiIE7w\nf5nbBrrfsw9xp17ku/5KPIT7rHNsuYLcKWfKlMIuIi8AqVv94LOq+p3kYz4LuMATkxznUeBRgLpi\ns2abDv3pPuSunSm3i0hKVijRMNy6Fc1S2OeTmBfFL1E/8CqO10dP0UY6iq/JasNOWsSiP7Jq/E0I\ndYM2lcMuHcU67ncX8mDHpezKGYdr/VFRH3PwrAn50NSeeq69DS7PNLmj3wB8gfccdLi6Pb+fi9Vd\n3xrXfRSIu4vlH8a3r0t9goRQO72ZWSFokh7+qz27g68XK1O+k1T1zsnuF5EPAvcBd+gk4+VV9XHg\ncYD1NUXz5b0zv4hGgnJMUZbT67N43HwSdIDqgT2s7v7W6FSiitgx6vtf4nDdx7JefM2WB/eH+NKO\nOJ4VLKBawKoui2svZifsGTVcubwba+KDku/skAdbWmyW946/MnRFfZ5pcnEnhPCtTS6ffNmecSfN\nCJYfI+qmtskK4GP6GxY7M+2KuYdgsfRWVR3MT0hXMM3pv2qqapC1j70tlkBfO5r28dmIuahHY99P\nqBvYhaUuXUWbuFB+F65dNv24s0Q0werub4/LIm1NEE20UzvwGq1lN+X1fHWDFp96OcKRWp/+sLK8\nx2JZX/YlhY2tFvsafPwxIiw+rOwRlvUKu5b7KQJtKWxusdjebLOqO/VcB+q9tB02onC41mPnDLpo\nxhJsIrPS2jNYGkfd5wLjtHgDSG7eOIb5y0zfRX8PRIDnk8Lziqp+bMZRXam4Hvr1n8DDt0HIRiwL\njbuQSKAhB2wLsW10OA6t3fDzA+OePp3sfF3HE5QPH8NO9pLXDrxB5fBR9jX8QU4LddlQEj8/2vM+\nFpsE1UP7chb2vrDSXuJTNSRUDo8XU8cXNrfmtoHorhMhzlfE6YsoCSsorRQl4D0Hw5TFhU2tPt/Y\nGmc4+SmyFN5zMMT6zuB8MVs5W+ER8YTlPYKFkLBIK+yT1eNzQcWmo/gaqgf3jv6NYewXDY/KoYMk\n7PPsa/gjtre8nL+TGwrOTLti8rPH13CZlw+hbd3InTvQqlJ0/xn40V4oLUJu2YJWlKD7TsPrx8D1\nciq1FCWaKY8dH/eBt/CxvUFqBvfQVvr2PL6gy3gSSXGAHL3PSr+5aDJ8Ub7XlOBAvY+T9G9Z02nx\n6wdDhNI2nk+PIlf42K4wx2t8WkuUmkFhQ4eFndyZuqTf4vdfjtBcqngWLOmT0ft2L3F57ioXWwMx\nDXvw8N4wTR02r670UkRcCBZR88nZyvsJ+f2UD59ARZK+M5ex8HH8QSqHDs5g7qphPmJWMecjxy+h\nxy+Nv61/GP3G+A9ervXz4vhF0lWQbRKUxU7PmrAPhZaQsEqxvK5xAu9JiNaSGzla4/HjNS49UaWh\nX3jnyVBKjXosv1jpcrDex7MZ7X45Ve3z/HqXe4/muBg7AQthQ4fNhgyuDoKwpH/87/JSqc9zVwV1\n9JFLZ9yGJ7bH+dRLEbY127zVEIi7KDgKbztnUzODfvd0+FaYY7UfIux2srT3h9QOptrnWhqnKNFK\nFzMZqm2YbxhhX2DkYzF0rM/IWDwchtLM4cwbIhyt+W02tj+O7ceSNWClufRmfrZ6Hc80JUYz2TNV\nype3x/nAm2FWZBD315Z7KTVu14a9jR7vOuog02lhySO7l3qkdC8KJCw4XenzrqMOm1otDtT7WApb\n0yyy5pO4U0130Uaqh/ZhTxj87Ut4nFf+WFMxI/ILFyPsC4RcBT3idtDQ9zNKEpcYCC2lpexm+sOr\nidsVRNyO8Zu3xaa9ZPo7SbPF8frY0PElLD8B+IAQsytoLruJF9a7KeUJ14YX1yX40J70Nf9Yhpr0\nSBeMU6Deq6FQqmHYCMNOkOWv7rZZ3Z1bUV00QV3/LqqH9uFJhNbSt9MTvXrSXbs90atJWKWI1z36\nN/excK0iuoo2pX2OyeAXLkbY5zEzzc6L4xe4uu3xZGuhT3H8PLWDuzlc9184XPcoazq/SXnsBAAx\np4ZT1e8lYWewNcgDq7u+TdjrGXMxcYl4XdQOPMeQ8660z2kpzazOK7uDbf4TE/O6AUlxaJxLmtps\njlf7JCZ8unwhbafMdBB12dj6T0QTrdhJm9yy+ClaS27kfGX63yEEi6mH6j/Oqu7vUjl0EFC6izZy\ntvL+FEO1sSyE0XyGVIywz0Py1Xu+qus74756W/igcVZ2f5fD9R/jWN0jWH4MUXdGO0CzQn0qhw+n\ntN9Z+CzpexPHfxfxNJpXHksv0IqysdXmTJWLr6BW0IroKLz7SH7q69lytsLn5RUuvVFlbafF9edt\nGgaElhINxF2DjpqbT9uUzKBPXVF8DjPoDNBVVE7Ic2kY6MHWBA39L9FS+o60NskjuHYpJ2oeTg7f\nYFrj9YzALyyMsGeDY0PIhqH41I/NkbxvJFKlJHE+7V2l8ctGKUFr41z1MafPvm1VbjiX2i0S8uCW\nU6lv0YSlfGV7nNYSxZNgAVJ8uLrN4tZTNhfLdXRI9fZLDltaAqve2eDNRpdnN7gkLECgrdhj7xKP\n33ktzOlq5UC9R9SFay84rOrJPVs/VuPxvaYEMWcNrvX7iCqO77G0r5NP/+RJGvoHKIufotPJYlLT\nDJyuTHlmYWCEfTKiYeQ3b4ed64Nti6096L+9GHi05JFZ2R0qgi9hbI2l3OUVYkOKWPREN1AxfHRc\nR4yPRVd0E7eddlAJBleoBBnubScdNrddVvohR7EVXl3u0lyqowunmjRCaS31+eE6OFV1uQxysSzB\nkVqL9x4I5X0x1RPluavGrw14NgwJvLrS4+7jIa5pnnlzeluxz1ObRxaWg+OpCAnL4mxFHZ+5+0M8\n/q3/i2vN8reuJEbc5z9G2CdBfvc+WNeIhJIfziXV8KlfQ//HV6Ft5i5zs73dv7XkBur7XxmtxULQ\n+dJa8rZZPe9EfFHOVPicrnyAu4/+E6WJfmyN40kY1yrmXOW7EYR3ngpx62mHYSfYCDSSZTeX+nxn\nY4KO4mDyjaWkdMMg0B2Fnuj43aAJB07U+FwoV5b35lfY24rTfwPxLThe7XN3ns6za7mHmyF0tSyG\nnAi7l27A1nV5OuPUmNLM/MYIeyYaq2BNAxKa8CuyLeSd16BP/jSnw86ld8uFirsJe91UDR3CFwdL\nXbqLNnGxYlL7n/zGUO7zta2BX4sQ5mvbHuN9b13g5jPHGQo10lW0edzina1CyZipeQMh5Us74sQD\n91gA/AzrqSqkthkCrgRthvluKSxOZBjAAZTksWrXVeRn7LIB8MXiUP09bGmd+xHGRuDnJ0bYM1FX\nAV6qz4Y4Nrq0Os0TJqcQZlwqDidrHibsdhNxOxh2aiddXMs3CUt5Yluc2IS1zCe3LaM8vobawamF\n6M0l7vjhFnDZMHzsbQrF8WCM3cRs3vGhON2I1RxxLeV4tU/MURr64FI541wgQx7ceC5/H621XRbn\nKlJ79kfwrBAN/XNThsmEEfj5hRH2TFxoDxZNJ6AJN3VXaAbmi7Ni3Kkk7lTO+XmPV/uk6zr0JdhE\ndMfJVOfDvY0e/RFlXadNU7tFR7GmFTQBLC/oWQ95YCv8+v4QX92equACbGqbea0b4GKZzxPXxPEl\nuLb4VpCdD4WCGDyBW07ZbOjIn/HLzosOu5Z59AspmXvIg6Y2i7osLpKZsPwYNQO7KU2cZdiuo63k\nOlwnt7ZXI/DzAyPsmejshzeOoTvXj84hVc+HmAs/fmvSp84XQS80cSf9NHjfCjbxjOVojcdTmxNB\nOcWC/fU+9QPClmaLg/WpBlm2D3cddxgKBS2RG1stwr7w0FvCv2+J4yZ1zvHhwf1hopmK1NPAR/na\ntjjDE76BDDtw7xGH6iGLhgEhZgclpJm0No4l6goffT3Cz1e5HKn1cK3gYlUaF669YGf0l28t8Xl9\nqUdvRFnfaXFNs53ioRPyetnU8g/Y/iA2Lgos63ue7ujVnKx+H34OHj5gFlgLjRH2SdB/fQEudsLt\n24IpRgfPoE+9BH1DaR9vBH08q7tsVNyU28MubBgzgMIT5dsbEymLni2lyiYrWEj15HK5w/GCzUnX\nXUx9+67qsfiDX0S4VB64by3pk7y1Op6r0NELxlgSNhyr9bnpjMXnr43TnRw30NgnPHAwlOI4mQsl\nCeGXj4f45ePZ9egfrHP57kYXN5nln6722bXc43feCFMS76duYBdFiTYibgeO3zs6InrkN1U5fJim\ntn/hUP3v5tweacS9cBhhnwxVeO4N9LlU86QRjJhnpiImvP2czasrvNE+75ALy3tlnJPhpTJNW7Jx\nbThU5/OR1yP8aI3LkToP24cdF21uOpv5rWsR+KXnG9dKZzoMSNCK+W874sTHhHWxTPnXHXEeeyUy\n6vo4F3iifP/q8W2YCRt6osrpinM8tO8LoN5ohp4uMgGK3BZK4ucYiKzMORZTmikMRthzxAh6dtx+\nKsTqLos9Sz3idjBVaFPb+A1Djp95lKjjB9nqfUdD3Jcnx0YI6vnny5WyeLDNP5se9xU9VtoumJAb\n1Nkn3qcWxBw4Ue3nteY+FS2l6Utgrg23nn563N6GyV+1EHXbZyTsIxiBn1uMsE8DI+a5sabbZs0k\nhlcN/UJxAnrGtDRCIJjXpim3zARF+X5Tgv0N/ujM0eKE8Ft7wlRmsC8YIewL9x12+N7VQaeObwUx\nLusVIq7g2qly6gv0RubWjSzikvYbUFE8xtK+tmkcSRkKNeQtLjDlmbnCCHsWGEGfXQThffvCfHl7\n0O+uyY6TbS02G9vy25v9VqPHgYYJm5gs5Ztb4nz0jal35G5pdWjss9i7xGMwpGzosLmq3eJgvc++\nxlTjL9eC6sG5NSSrGbKoHBLai8e7TFopk7kvM3LpGYnUx2YwtIzB8LKpT6hKafwMYa+XgfByYs7k\n7cDGGnj2McKeASPmc0vDgMUfvBTheLXPUEhZ2WNRnefBEwC7lqVOL1IL2kuUnohSMUXWDlA7ZKW0\nam5ss3j2KkikKVq/vtxjbY4Wvbnyvn0hvrI9wWCy+8gT2NYSpTcS2DqMtWv2cOgq2kxRopUitwWV\nEG3FO7lQcc+U5wl5PTS1fZ6w1wuAqE9H8TZOV/06yNR/P5PBzw5G2A3zBluFplmuRWeaKyoKcTvT\nUuLU2CpIuqcLHKvxcS3FycO4vmypGrb4xCthzlUoAyFlea9FWVw4XfVemtr+mYg3Mjhd6Yus5XT1\neye1783Euo6vEXU7xvn/VA/tYyC8krbS7KwrjLjnHyPsYzBZ+uJnY6vFyyu90VF6I4Q9qJ1hyWSS\nSkdG64HZRBBW9ow/sWuXcKDhk5TGzxBxOxkML2Uo1JjT8R2vj5L4hZQ5trYmqO9/OWthB7O4mm+M\nsGME/UrixnMOBxt8+sKBV7rlBztGf/XQzN0fl/UIJ2o0xeqgZhDC6Uxs5oDOIp+BcLBAPRqDCP2R\n1fRHVs/o2JYmUJG0LU0TR/BlixH4/HDFCrsR8yuTqCc8+lqY/Q0eJ6t8KoeFnRdtqvKwiagvwybN\nIQe+uDPGmk6L6y84eduROhkDIeXJrXFaSgOrY1/g9pMObzufv4983K7CkyJsHW/j4GPTWbR5Rsc2\n5ZmZcUUJuxFzA0DIF3ZcctiRR1v9mK20F6eO6UOgPwL9UeVSqcfuZR4ffS1CWXx2xf0bW+JcKlN8\nC0b2/v5orUvtoLCuM0/rGCKcrP4Nrur4EqI+Fh4eIVy7hEvlt8/48CZ7z528CLuI/DHwN0Cdqrbn\n45j5xAi6YbaxJmtVT2r4yBCOn61yuffY7I3v64r6NCdFfSwJG15Z7uZP2IG+6Dr2N3yK+v5XiLhd\n9EbW0lGyMzmZKz8YgZ8+MxZ2EVkB3AWcneqxc40RdMNYeiLK/gaXmA3rO21W9EjepiqFfGFdh8WJ\nGn/yRVQLjtd4MIvCPhTKfKHpn4XhWXGnmvOV9+b/wBMw5ZnsyUfG/nfAnwDfycOx8oIRdMNEDtW6\nfHtT4I3iWcFUog3tFu/Jw6LpCHefcPjH2niqV/wEivLgNDkZdQMT+1QCbJ9xHj0LEZO9Z8eMhF1E\n7gcuqOpemcGA3HxgxNyQibilfGeTm+IeebTW52iNT1OHTV9YOVPpU+TCmi4LKwfTruPVPrYH7iSf\nqpAHb5/EwCwfhHzh7uMOP7jq8pBt24MiN78DQAqJEfjJmfKvLCIvAOkaXT8LfAayG+0oIo8CjwLU\nFefvzWUE3TAVp6v8tKWJhAP7Gjwulvu8vMLDTq592j584M0wDQPTy27bSjS9qGtgZgZww3l7TkbY\n7bzkUDNk8coKl76wsq7D4m3nHYpn+dvCXGPKM+mZUmFVNe2ATBHZCqwBRrL15cBuEblBVZvTHOdx\n4HGA9TVFM3JFMmJumA4ZFzYVBsPK8VofzwZvzO1f2xbnky9HplWmaewTQi4pfjGOD+88YbO1ZW6F\ndVW3xaru8Jydr1CY7D2VnFNnVd0H1I/8LCKngetmsyvGCLohF1Z3W2lrziE/8FBJsRmQwG73YrlO\ny9d9a4vNT9e4uNblEXa2F2wOuuGCk7daviE9RuAvs2BWUoyoG3LF8YUH94cIeYHNru0FU5i2X7RH\nSyQTEYLa/HQI+8JHXo+wqc0i5EI0ATsv2nxgb9iI+hwy1j3ySiVvxW5VXZ2vY41gxNyQL9Z22Xzy\nJYsjtR4xB9Z2BgOg31jicqHCTcnafWB57/TznrK48MDBxV/+mO9c6dn7vFwiN4JumA2KXGF78/i3\n/DXNNnuXeLSWBN4xkvSOefcRJ2Xws2HhcaUK/LwRdiPmVxY+mrch0zPBUeGDe8IcqvM5WutRXgeF\nFAAABY5JREFUEhd2XLSpH1wwVUpDFlxp3TMFF3Yj6FcWbzW4/HCtS18EShJw6ymHnRftgtagbRW2\ntNpsaZ3bYRiGueVKyt4LIuyh6nUseeibhTi1oYAcqHN5pulyPXsgDM+vDyyq8j3b1GDIxJUg8Ob7\npmHO+NHa1EXKhA0/WeOmf4LBMIss5u4ZI+yGOaMng1/5QAg8mdGeNYMhJxaruBthN8wZ1UPp6+hl\n8aDObTAUgj2NNy86gTfCbpgz3nnCwfHG3xby4PYTpr5uKDyLSeCNsBvmjKYOmwcOhqgZECwfqgbh\nvsMO17QYYTfMHxaDwJtPlGFOaWq3aWo3bYWG+c9C7p4xGbvBYDBMwkLM4I2wGwwGwyLDCLvBYDBk\nwULK3I2wGwwGwzRYCAJvhN1gMBhyYD4LvBF2g8FgmAHzUeCNsBsMBkMemE8Cb4TdYDAYFhlG2A0G\ngyGPzIfM3Qi7wWAwzAKFFHgj7AaDwTCLFELcjbAbDAbDLDPX2bsxATMYDIY5Yqy4z6a5mMnYDQaD\noQDMZgZvhN1gMBgKxGyJuxF2g8FgKCCzUX8X1bkfIiwibcCZWTxFLdA+i8efCxb6azDxF56F/hpM\n/KmsUtW6qR5UEGGfbUTkdVW9rtBxzISF/hpM/IVnob8GE3/umFKMwWAwLDKMsBsMBsMiY7EK++OF\nDiAPLPTXYOIvPAv9NZj4c2RR1tgNBoPhSmaxZuwGg8FwxbKohV1EHhORIyJyQET+utDx5IKI/LGI\nqIjUFjqW6SIifyMih0XkLRH5lohUFjqmbBCRe5Lvm+Mi8meFjmc6iMgKEfmRiBxKvu8/WeiYckFE\nbBHZIyLfL3QsuSAilSLy78n3/yERuXEuz79ohV1Ebgd+FdimqpuBvy1wSNNGRFYAdwFnCx1LjjwP\nbFHVbcBR4NMFjmdKRMQG/gF4F7AJeEhENhU2qmnhAn+kqhuBtwO/t8DiH+GTwKFCBzEDPgc8q6pX\nA9cwx69l0Qo78HHgL1U1BqCqrQWOJxf+DvgTYEEuhKjqD1TVTf74CrC8kPFkyQ3AcVU9qapx4OsE\nCcKCQFUvqeru5P/7CARlWWGjmh4ishx4N/D5QseSCyJSDtwC/AuAqsZVtXsuY1jMwr4BuFlEXhWR\nn4jI9YUOaDqIyP3ABVXdW+hY8sSHgf8sdBBZsAw4N+bn8ywwYRxBRFYDO4BXCxvJtPlfBAmNX+hA\ncmQt0AZ8MVlO+ryIlMxlAAvatldEXgAa09z1WYLXVkXwdfR64BsislbnURvQFPF/Brh7biOaPpO9\nBlX9TvIxnyUoETwxl7HliKS5bd68Z7JFREqBp4BPqWpvoePJFhG5D2hV1TdE5LZCx5MjDrATeExV\nXxWRzwF/Bvy3uQxgwaKqd2a6T0Q+DjydFPJdIuITeDe0zVV8U5EpfhHZCqwB9ooIBCWM3SJyg6o2\nz2GIUzLZ3wBARD4I3AfcMZ8uqpNwHlgx5uflwMUCxZITIhIiEPUnVPXpQsczTW4C7heRe4EoUC4i\nX1HVDxQ4rulwHjivqiPflP6dQNjnjMVcivk28E4AEdkAhFkghkKquk9V61V1taquJnij7Jxvoj4V\nInIP8KfA/ao6WOh4suQ14CoRWSMiYeD9wHcLHFPWSJAJ/AtwSFX/Z6HjmS6q+mlVXZ58378f+OEC\nE3WSn9NzItKUvOkO4OBcxrCgM/Yp+ALwBRHZD8SBDy6QjHEx8fdABHg++c3jFVX9WGFDmhxVdUXk\nE8BzgA18QVUPFDis6XAT8FvAPhF5M3nbZ1T1mQLGdCXyGPBEMjk4CTwylyc3O08NBoNhkbGYSzEG\ng8FwRWKE3WAwGBYZRtgNBoNhkWGE3WAwGBYZRtgNBoNhkWGE3WAwGBYZRtgNBoNhkWGE3WAwGBYZ\n/x+7oDyeFKkt+gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x23fa2e4a240>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率：    50.5 %\n"
     ]
    }
   ],
   "source": [
    "x, y = gen_five_clusters()\n",
    "label = np.argmax(y, axis=1)\n",
    "perceptron = MultiPerceptron()\n",
    "perceptron.fit(x, y)\n",
    "visualize2d(perceptron, x, label, draw_background=True)\n",
    "print(\"准确率：{:8.6} %\".format((perceptron.predict(x) == label).mean() * 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 从感知机到神经网络"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "class NaiveNN:\n",
    "    def __init__(self, ws=None):\n",
    "        # 这里的 self._ws 将会是一个存储着两个权值矩阵的列表\n",
    "        self._ws = ws\n",
    "        \n",
    "    @staticmethod\n",
    "    def relu(x):\n",
    "        # 利用 numpy 相应函数直接写出 ReLU 的实现\n",
    "        return np.maximum(0, x)\n",
    "    \n",
    "    # hidden_dim 即为隐藏层神经元个数 m\n",
    "    def fit(self, x, y, hidden_dim=4, lr=1e-3, epoch=1000):\n",
    "        input_dim, output_dim = x.shape[1], y.shape[1]\n",
    "        if self._ws is None:\n",
    "            # 随机初始化权值矩阵\n",
    "            self._ws = [\n",
    "                np.random.random([input_dim, hidden_dim]),\n",
    "                np.random.random([hidden_dim, output_dim])\n",
    "            ]\n",
    "        # 定义一个列表存储训练过程中的损失\n",
    "        losses = []\n",
    "        for _ in range(epoch):\n",
    "            # 依公式算出各个值\n",
    "            h = x.dot(self._ws[0]); h_relu = NaiveNN.relu(h)\n",
    "            y_pred = h_relu.dot(self._ws[1])\n",
    "            # 利用 np.linalg.norm 算出损失\n",
    "            losses.append(np.linalg.norm(y_pred - y, ord=\"fro\"))\n",
    "            # 依公式算出各个梯度\n",
    "            d1 = 2 * (y_pred - y)\n",
    "            dw2 = h_relu.T.dot(d1)\n",
    "            dw1 = x.T.dot(d1.dot(self._ws[1].T) * (h_relu != 0))\n",
    "            # 走一步梯度下降\n",
    "            self._ws[0] -= lr * dw1; self._ws[1] -= lr * dw2\n",
    "        # 把诸模型损失返回\n",
    "        return losses\n",
    "    \n",
    "    def predict(self, x):\n",
    "        h = x.dot(self._ws[0]); h_relu = NaiveNN.relu(h)\n",
    "        # 用 argmax 预测类别\n",
    "        return np.argmax(h_relu.dot(self._ws[1]), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nrtFoNDnG/wdG8DLAu7ht4QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x23fa4d25358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率：    56.5 %\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x23fa4d398d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x, y = gen_five_clusters()\n",
    "label = np.argmax(y, axis=1)\n",
    "nn = NaiveNN()\n",
    "losses = nn.fit(x, y, 32, 1e-5)\n",
    "visualize2d(nn, x, label, draw_background=True)\n",
    "print(\"准确率：{:8.6} %\".format((nn.predict(x) == label).mean() * 100))\n",
    "\n",
    "plt.figure()\n",
    "plt.plot(np.arange(1, len(losses)+1), losses)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 应用 Softmax + Cross Entropy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "class NN:\n",
    "    def __init__(self, ws=None):\n",
    "        self._ws = ws\n",
    "        \n",
    "    @staticmethod\n",
    "    def relu(x):\n",
    "        return np.maximum(0, x)\n",
    "    \n",
    "    @staticmethod\n",
    "    def softmax(x):\n",
    "        exp_x = np.exp(x - np.max(x, axis=1, keepdims=True))\n",
    "        return exp_x / np.sum(exp_x, axis=1, keepdims=True)\n",
    "    \n",
    "    @staticmethod\n",
    "    def cross_entropy(y_pred, y_true):\n",
    "        return -np.average(\n",
    "            y * np.log(np.maximum(y_pred, 1e-12)) +\n",
    "            (1 - y) * np.log(np.maximum(1 - y_pred, 1e-12))\n",
    "        )\n",
    "    \n",
    "    def fit(self, x, y, hidden_dim=4, lr=1e-3, epoch=1000):\n",
    "        input_dim, output_dim = x.shape[1], y.shape[1]\n",
    "        if self._ws is None:\n",
    "            self._ws = [\n",
    "                np.random.random([input_dim, hidden_dim]),\n",
    "                np.random.random([hidden_dim, output_dim])\n",
    "            ]\n",
    "        losses = []\n",
    "        for _ in range(epoch):\n",
    "            h = x.dot(self._ws[0]); h_relu = NN.relu(h)\n",
    "            y_pred = NN.softmax(h_relu.dot(self._ws[1]))\n",
    "            losses.append(NN.cross_entropy(y_pred, y))\n",
    "            d1 = y_pred - y\n",
    "            dw2 = h_relu.T.dot(d1)\n",
    "            dw1 = x.T.dot(d1.dot(self._ws[1].T) * (h_relu != 0))\n",
    "            self._ws[0] -= lr * dw1; self._ws[1] -= lr * dw2\n",
    "        return losses\n",
    "    \n",
    "    def predict(self, x):\n",
    "        h = x.dot(self._ws[0]); h_relu = NaiveNN.relu(h)\n",
    "        # 由于 Softmax 不影响 argmax 的结果，所以这里直接 argmax 即可\n",
    "        return np.argmax(h_relu.dot(self._ws[1]), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nWAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x23fa4d19588>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率：    77.5 %\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x23fa52dba20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nn = NN()\n",
    "losses = nn.fit(x, y, 32, 1e-4)\n",
    "visualize2d(nn, x, label, draw_background=True)\n",
    "print(\"准确率：{:8.6} %\".format((nn.predict(x) == label).mean() * 100))\n",
    "\n",
    "plt.figure()\n",
    "plt.plot(np.arange(1, len(losses)+1), losses)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda env:playground]",
   "language": "python",
   "name": "conda-env-playground-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
